class BusinessTaskQueue {
	constructor() {
		// 属性
		this.tasks = [];
		this.isProcess = false;
	}
	// 方法
	// 1.enqueue():将元素加入到队列中
	enqueue(task) {
		this.tasks.push(task);
	}
	// 2.dequeue():从队列中删除前端元素
	dequeue() {
		return this.tasks.shift();
	}
	// 3.front():查看前端的元素
	front() {
		return this.tasks[0];
	}
	// 4.isEmpty:查看队列是否为空
	isEmpty() {
		return this.tasks.length == 0;
	}
	// 5.size():查看队列中元素的个数
	size() {
		return this.tasks.length;
	}
	//6.filter():根据cmdId删除队列中的元素
	filter(cmdId) {
		let size = this.size();
		if (size > 1 && this.isProcess) {
			this.tasks.forEach((item, index) => {
				if (item.cmdId === cmdId) {
					this.tasks.splice(index, 1);
					if (index === 0) {
						this.isProcess = false;
					}
				}
			});
		} else if (size === 1 && this.isProcess) {
			this.isProcess = false;
			this.dequeue();
		}
	}

	// 7. clear(): 清除队列
	clear() {
		this.tasks = [];
		this.isProcess = this.tasks.length !== 0;
	}
}

export default BusinessTaskQueue;
